package com.opal.system.service;

import com.opal.domain.ReturnMessageData;
import com.opal.system.entity.table.OpalMenu;

import java.util.List;

public interface OpalMenuService {

	/**
	 * 获取所有的树形菜单
	 * @return
	 */
	public List<OpalMenu> getAllMenu();

	/**
	 * 根据用户id获取相应的菜单信息
	 * @param userId
	 * @return
	 */
	List<OpalMenu> getOpalMenuByUserIdService(Long userId);
	
	/**
	 * 获取session用户所有的菜单
	 * @return
	 */
	public ReturnMessageData getListOpalMenu();

	/**
	 * 根据用户更新或添加菜单
	 * @param userId
	 * @param menuIds
	 * @return
	 */
	ReturnMessageData updateMenuPermissionService(Long userId, Long[] menuIds);


	/**
	 * 获取所有的菜单：准备换成分页
	 * @return
	 */
	public List<OpalMenu> getMenuAllDataservice();

	/**
	 * 添加菜单
	 * @param opalMenu
	 * @return
	 */
	public ReturnMessageData addMenuService(OpalMenu opalMenu);

	/**
	 * 修改菜单
	 * @param opalMenu
	 * @return
	 */
	public ReturnMessageData updateMenuService(OpalMenu opalMenu);
	
	/**
	 * 删除菜单
	 * @param opalMenu
	 * @return
	 */
	public ReturnMessageData opalMenuSercice(OpalMenu[] opalMenu);

	/**
	 * 权限管理页面：权限路径字段的下拉树列表需要用到
	 * @return
	 */
	Object permissionAllMenuService();
}
